security_check();
if ($resultat_session == 'c') {
header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
die();
} else if ($resultat_session == '0') {
header("Location: ../logout.php?auto=1");
die();
}
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
if(($_SESSION['statut']=='cpe')&&(!getSettingAOui('CpeEditElevesGroupes'))) {
header("Location: ../accueil.php?msg=Accès non autorisé");
die();
}
elseif(($_SESSION['statut']=='scolarite')&&(!getSettingAOui('ScolEditElevesGroupes'))) {
header("Location: ../accueil.php?msg=Accès non autorisé");
die();
}
// Initialisation des variables utilisées dans le formulaire
$id_classe = isset($_GET['id_classe']) ? $_GET['id_classe'] : (isset($_POST['id_classe']) ? $_POST["id_classe"] : NULL);
$id_groupe = isset($_GET['id_groupe']) ? $_GET['id_groupe'] : (isset($_POST['id_groupe']) ? $_POST["id_groupe"] : NULL);
$order_by = isset($_GET['order_by']) ? $_GET['order_by'] : (isset($_POST['order_by']) ? $_POST["order_by"] : "classe");
if(isset($_POST['id_groupe_reference'])) {
$_SESSION['id_groupe_reference_copie_assoc']=$_POST['id_groupe_reference'];
}
function debug_edit_eleves($texte) {
$debug_edit_eleves=0;
if($debug_edit_eleves==1) {
echo "$texte \n";
}
}
debug_edit_eleves("id_groupe=$id_groupe");
if (!is_numeric($id_groupe)) {
$id_groupe = 0;
header("Location: ../accueil.php?msg=Enseignement non choisi");
die();
}
$sql="SELECT 1=1 FROM groupes WHERE id='$id_groupe';";
$test=mysqli_query($GLOBALS['mysqli'], $sql);
if(mysqli_num_rows($test)==0) {
header("Location: ../accueil.php?msg=Enseignement invalide");
die();
}
debug_edit_eleves("id_groupe=$id_groupe");
$current_group = get_group($id_groupe);
$reg_nom_groupe = $current_group["name"];
debug_edit_eleves("reg_nom_groupe=$reg_nom_groupe");
$reg_nom_complet = $current_group["description"];
$reg_matiere = $current_group["matiere"]["matiere"];
if(!isset($id_classe)) {
$id_classe=$current_group['classes']['list'][0];
}
$reg_id_classe = $id_classe;
$reg_clazz = $current_group["classes"]["list"];
$reg_professeurs = (array)$current_group["profs"]["list"];
$mode = isset($_GET['mode']) ? $_GET['mode'] : "groupe";
if (count($current_group["classes"]["list"]) > 1) {
$multiclasses = true;
} else {
$multiclasses = false;
}
$reg_eleves = array();
foreach ($current_group["periodes"] as $period) {
//echo '$period["num_periode"]='.$period["num_periode"]." ";
if($period["num_periode"]!=""){
$reg_eleves[$period["num_periode"]] = $current_group["eleves"][$period["num_periode"]]["list"];
//$msg.="\$reg_eleves[\$period[\"num_periode\"]]=\$reg_eleves[".$period["num_periode"]."]=".$reg_eleves[$period["num_periode"]]." ";
}
}
$msg = null;
if (isset($_POST['is_posted'])) {
check_token();
$error = false;
// On vide les signalements par un prof lors de l'enregistrement
$sql="DELETE FROM j_signalement WHERE id_groupe='$id_groupe' AND nature='erreur_affect';";
//echo "$sql ";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
// Elèves
$sql="SELECT DISTINCT login FROM j_eleves_groupes WHERE id_groupe='$id_groupe' ORDER BY login";
debug_edit_eleves($sql);
$result_liste_eleves_du_grp=mysqli_query($GLOBALS["mysqli"], $sql);
while($lig_eleve=mysqli_fetch_object($result_liste_eleves_du_grp)){
$temoin_nettoyage="";
foreach($current_group["periodes"] as $period) {
//$sql="SELECT * FROM matieres_notes WHERE login='$lig_eleve->login' AND id_groupe='$id_groupe' AND periode='$period'";
$sql="SELECT * FROM matieres_notes WHERE login='$lig_eleve->login' AND id_groupe='$id_groupe' AND periode='".$period['num_periode']."';";
debug_edit_eleves($sql);
$res_liste_notes=mysqli_query($GLOBALS["mysqli"], $sql);
//$sql="SELECT * FROM matieres_appreciations WHERE login='$lig_eleve->login' AND id_groupe='$id_groupe' AND periode='$period'";
//$sql="SELECT * FROM matieres_appreciations WHERE login='$lig_eleve->login' AND id_groupe='$id_groupe' AND periode='$period'";
$sql="SELECT * FROM matieres_appreciations WHERE login='$lig_eleve->login' AND id_groupe='$id_groupe' AND periode='".$period['num_periode']."';";
debug_edit_eleves($sql);
$res_liste_appreciations=mysqli_query($GLOBALS["mysqli"], $sql);
if((mysqli_num_rows($res_liste_notes)==0)&&(mysqli_num_rows($res_liste_appreciations)==0)){
//$sql="DELETE FROM j_eleves_groupes WHERE id_groupe='$id_groupe' AND login='$lig_eleve->login'";
//$sql="DELETE FROM j_eleves_groupes WHERE id_groupe='$id_groupe' AND login='$lig_eleve->login' AND periode='$period'";
$sql="DELETE FROM j_eleves_groupes WHERE id_groupe='$id_groupe' AND login='$lig_eleve->login' AND periode='".$period['num_periode']."';";
debug_edit_eleves($sql);
//echo "$sql \n";
$resultat_nettoyage_initial=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
}
//=========================
// AJOUT: boireaus 20071010
$login_eleve=$_POST['login_eleve'];
//$setting_coef=$_POST['setting_coef'];
//=========================
$reg_eleves = array();
// On travaille période par période
$flag = array();
foreach($current_group["periodes"] as $period) {
/*
foreach ($_POST as $key => $value) {
$pattern = "/^eleve\_" . $period["num_periode"] . "\_/";
if (preg_match($pattern, $key)) {
$id = preg_replace($pattern, "", $key);
$reg_eleves[$period["num_periode"]][] = $id;
// Settings spécifiques
$coef = array();
if (!in_array($id, $flag)) {
$coef[] = $_POST["setting_coef_".$id];
$res = set_eleve_groupe_setting($id, $id_groupe, "coef", $coef);
$flag[] = $id;
}
}
}
*/
$reg_eleves[$period["num_periode"]]=array();
for($i=0;$i0) {
for($i=0;$i";
print_r($reg_code_modalite_elect_eleves);
echo "";
*/
if (!$error) {
// pas d'erreur : on continue avec la mise à jour du groupe
/*
$msg.="count(\$reg_eleves)=count($reg_eleves)=".count($reg_eleves)." ";
$msg.="count(\$reg_clazz)=count($reg_clazz)=".count($reg_clazz)." ";
$msg.="\$reg_clazz[0]=".$reg_clazz[0]." ";
$msg.="update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves); ";
*/
//==========================================
// MODIF: boireaus
if(count($reg_eleves)!=0){
// 20160420
$create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves, $reg_code_modalite_elect_eleves);
debug_edit_eleves("update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, \$reg_clazz, \$reg_professeurs, \$reg_eleves, \$reg_code_modalite_elect_eleves);");
if (!$create) {
$msg .= "Erreur lors de la mise à jour du groupe.";
} else {
$msg .= "Le groupe a bien été mis à jour.";
}
}
else {
// Sauf erreur, $reg_eleves est toujours initialisé, on ne passe plus ici.
$login_eleve=$_POST['login_eleve'];
debug_edit_eleves("count(\$login_eleve)=".count($login_eleve));
foreach($current_group["periodes"] as $period) {
//echo "\n";
for($i=0;$i\n";
$res = mysqli_query($GLOBALS["mysqli"], "delete from j_eleves_groupes where (id_groupe = '" . $id_groupe . "' and login = '" . $login_eleve[$i] . "' and periode = '" . $period["num_periode"] . "')");
if (!$res) $errors = true;
} else {
$msg .= "Erreur lors de la suppression de l'élève ayant le login '" . $login_eleve[$i] . "', pour la période '" . $period["num_periode"] . " (des notes ou appréciations existent). ";
}
}
}
}
//==========================================
}
debug_edit_eleves("id_groupe=$id_groupe");
$current_group = get_group($id_groupe);
// On réinitialise $reg_eleves
$reg_eleves = array();
foreach ($current_group["periodes"] as $period) {
if($period["num_periode"]!=""){
debug_edit_eleves("\$period[\"num_periode\"]=".$period["num_periode"]);
$reg_eleves[$period["num_periode"]] = $current_group["eleves"][$period["num_periode"]]["list"];
debug_edit_eleves("\$reg_eleves[".$period["num_periode"]."] = \$current_group[\"eleves\"][".$period["num_periode"]."][\"list\"]");
}
}
}
if(isset($_POST['upload_et_import_csv'])) {
check_token();
$csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL;
$msg="";
$fp=fopen($csv_file['tmp_name'],"r");
if(!$fp) {
$msg="Erreur à l'ouverture du fichier. ";
}
else {
$nb_periode=$current_group['nb_periode'];
$tab_nb_per_classe=array();
$nb_inscriptions_eleve=0;
$nb_inscriptions_eleve_toutes_periodes=0;
if($_POST['ajouter_ou_remplacer']=="ajouter") {
while (!feof($fp)) {
$ligne = ensure_utf8(fgets($fp, 4096));
if(trim($ligne)!="") {
$tab=explode(";", trim($ligne));
if($tab[0]!="") {
$temoin_inscription="n";
$current_eleve=$tab[0];
$sql="SELECT DISTINCT id_classe FROM eleves e, j_eleves_classes jec WHERE jec.login=e.login AND e.login='$current_eleve';";
//echo "$sql \n";
$res_clas = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_clas)==0) {
$msg .= "L'élève ".$current_eleve." n'existe pas. ";
}
else {
while($lig_clas=mysqli_fetch_object($res_clas)) {
$poursuivre="y";
if(!in_array($lig_clas->id_classe, $current_group["classes"]["list"])) {
// La classe n'est pas encore associée à ce groupe
if(!isset($tab_nb_per_classe[$lig_clas->id_classe])) {
// Récupération du nombre de périodes de la classe
$sql="SELECT num_periode FROM periodes p WHERE p.id_classe='$lig_clas->id_classe' ORDER BY num_periode DESC LIMIT 1;";
//echo "$sql \n";
$res_per = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_per)==0) {
$msg.="Classe n°$lig_clas->id_classe sans période? ";
$tab_nb_per_classe[$lig_clas->id_classe]=0;
$poursuivre="n";
}
else {
$lig_per=mysqli_fetch_object($res_per);
$tab_nb_per_classe[$lig_clas->id_classe]=$lig_per->num_periode;
}
}
// Vérification du nombre de périodes
if($tab_nb_per_classe[$lig_clas->id_classe]!=$nb_periode-1) {
$msg.="$current_eleve est inscrit dans une classe n°$lig_clas->id_classe dont le nombre de période diffère de celui de la ou des classes du groupe n°$id_groupe. ";
// A AMELIORER: Permettre s'il a changé de classe de l'inscrire sur les périodes qui conviennent.
$poursuivre="n";
}
else {
if(!in_array($lig_clas->id_classe, $reg_clazz)) {
$reg_clazz[]=$lig_clas->id_classe;
}
}
}
if($poursuivre=="y") {
// L'élève est-il déjà inscrit?
foreach ($current_group["periodes"] as $period) {
if($period["num_periode"]!=""){
if(!in_array($current_eleve, $reg_eleves[$period["num_periode"]])) {
$reg_eleves[$period["num_periode"]][]=$current_eleve;
$nb_inscriptions_eleve_toutes_periodes++;
$temoin_inscription="y";
}
}
}
}
}
if($temoin_inscription=="y") {
$nb_inscriptions_eleve++;
}
}
}
}
}
}
else {
// Il faut contrôler en plus si la désinscription est possible.
}
if($nb_inscriptions_eleve>0) {
// 20160420: On ne change pas les modalités pour le moment: Problème: on peut garder des modalités pour des élèves qui ne sont plus dans le groupe
$reg_code_modalite_elect_eleves=$current_group["modalites"];
$create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves, $reg_code_modalite_elect_eleves);
debug_edit_eleves("update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, \$reg_clazz, \$reg_professeurs, \$reg_eleves);");
if (!$create) {
$msg .= "Erreur lors de la mise à jour du groupe.";
} else {
$msg .= "Le groupe a bien été mis à jour. ";
$msg .= "$nb_inscriptions_eleve élève(s) nouvellement inscrits pour $nb_inscriptions_eleve_toutes_periodes enregistrements en cumulant les périodes (toutes les cases). ";
}
}
debug_edit_eleves("id_groupe=$id_groupe");
$current_group = get_group($id_groupe);
// On réinitialise $reg_eleves
$reg_eleves = array();
foreach ($current_group["periodes"] as $period) {
if($period["num_periode"]!=""){
debug_edit_eleves("\$period[\"num_periode\"]=".$period["num_periode"]);
$reg_eleves[$period["num_periode"]] = $current_group["eleves"][$period["num_periode"]]["list"];
debug_edit_eleves("\$reg_eleves[".$period["num_periode"]."] = \$current_group[\"eleves\"][".$period["num_periode"]."][\"list\"]");
}
}
}
}
$avec_js_et_css_edt="y";
$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE **************************************
$titre_page = "Gestion des groupes";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE **********************************
//debug_var();
//=========================
$nb_periode=$current_group['nb_periode'];
//=========================
//echo "\$nb_periode=$nb_periode ";
//=========================
// AJOUT: boireaus 20140702
if(isset($_GET['import_csv'])) {
echo "
Import de la liste des élèves dans ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].")
NOTES :
Vous pouvez importer la liste des élèves du groupe/enseignement courant d'après un CSV contenant un LOGIN_ELEVE par ligne.
Vous pouvez proposer des élèves d'autres classes que celles actuellement associées au groupe, mais seuls les élèves inscrits dans des classes de même nombre de périodes que la ou les classes actuellement associées à ce groupe pourront être inscrits dans le groupe.
MODE ENCORE A DEVELOPPER... (*) Si vous désinscrivez des élèves du groupe, la désinscription sera refusée si l'élève a des notes, appréciations, avis sur les bulletins ou des notes dans le carnet de notes.
A FAIRE : Mettre des cases à cocher pour choisir/restreindre sur quelle période importer la liste.
";
require("../lib/footer.inc.php");
die();
}
//=========================
$tab_autres_sig=array();
$sql="SELECT DISTINCT id_groupe FROM j_signalement WHERE nature='erreur_affect' AND id_groupe!='$id_groupe';";
//echo "$sql ";
$res_autres_sig=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_autres_sig)>0) {
while($lig_autres_sig=mysqli_fetch_object($res_autres_sig)) {
$tab_autres_sig[]=$lig_autres_sig->id_groupe;
}
}
$tab_sig=array();
$sql="SELECT * FROM j_signalement WHERE id_groupe='$id_groupe' AND nature='erreur_affect' ORDER BY periode, login;";
//echo "$sql ";
$res_sig=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_sig)>0) {
while($lig_sig=mysqli_fetch_object($res_sig)) {
$tab_sig[$lig_sig->periode][$lig_sig->login]=my_ereg_replace("_"," ",$lig_sig->valeur)." selon ".affiche_utilisateur($lig_sig->declarant,$id_classe);
//$tab_sig[$lig_sig->periode][]=$lig_sig->login;
}
}
?>
// Initialisation
change='no';
\n";
echo "
";
echo "\n";
echo "
\n";
// Formulaire pour passer à un autre groupe de la même matière éventuellement dans une autre classe
$sql="SELECT DISTINCT jgc.id_groupe FROM groupes g, j_groupes_classes jgc, classes c, j_groupes_matieres jgm WHERE jgc.id_classe=c.id AND g.id=jgc.id_groupe AND g.id=jgm.id_groupe AND jgm.id_matiere='".$current_group['matiere']['matiere']."' ORDER BY c.classe, g.name;";
//echo "$sql \n";
$res_grp=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_grp)>1) {
echo "
";
echo "\n";
echo "
\n";
}
// Formulaire pour passer à un autre groupe avec erreur d'affectation
if(count($tab_autres_sig)>0) {
echo "
";
echo "\n";
echo "
\n";
}
echo "\n";
?>
";
$texte_infobulle="";
$tabdiv_infobulle[]=creer_div_infobulle('edt_prof',$titre_infobulle,"",$texte_infobulle,"",40,0,'y','y','n','n');
//https://127.0.0.1/steph/gepi_git_trunk/edt_organisation/index_edt.php?login_edt=boireaus&type_edt_2=prof&no_entete=y&no_menu=y&lien_refermer=y
function affiche_lien_edt_prof($login_prof, $info_prof) {
return " ";
}
$titre_infobulle="EDT de la classe de ";
$texte_infobulle="";
$tabdiv_infobulle[]=creer_div_infobulle('edt_classe',$titre_infobulle,"",$texte_infobulle,"",40,0,'y','y','n','n');
echo "
\n";
}
else {
function affiche_lien_edt_prof($login_prof, $info_prof) {
return "";
}
}
//============================================================================================================
function affiche_lien_mailto_prof($mail_prof, $info_prof) {
$retour=" =18) {$retour.="Bonsoir";} else {$retour.="Bonjour";}
$retour.=",%0d%0aCordialement.' title=\"Envoyer un mail à $info_prof\">";
$retour.="";
$retour.="";
return $retour;
}
//============================================================================================================
echo "